package com.kuhnwei.examples.datastructure.linkedlist.simple;

/**
 * Created by Kuhn on 2017/8/15.
 */
public interface Link {

    /**
     * 增加节点
     * @param object 节点对象
     */
    void add(Object object);

    /**
     * 删除节点
     * @param object 节点对象
     */
    void remove(Object object);

    /**
     * 获得指定位置的节点对象
     * @param index 节点所属链表的位置
     * @return 节点对象
     */
    Object get(int index);

    /**
     * 修改节点内容
     * @param index 节点所属链表的位置
     * @param object 新的节点对象
     */
    void set(int index, Object object);

    /**
     * 链表转对象数组
     * @return 数组对象
     */
    Object[] toArray();

    /**
     * 链表长度
     * @return 链表长度
     */
    int size();

    /**
     * 判断链表是否为空
     * @return true : 空
     */
    boolean isEmpty();

    /**
     * 判断是链表中是否包含该对象
     * @param object 被查找的对象
     * @return true : 存在
     */
    boolean contains(Object object);

    /**
     * 清空链表内容
     */
    void clear();

}
